package com.meituan.sdk.model.ddzhkh.finance.financeIncomeDetail;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 查询账期收入明细
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzhkh/finance/income/detail",
    businessId = 59,
    apiVersion = "10007",
    apiName = "finance_income_detail",
    needAuth = true
)
public class FinanceIncomeDetailRequest implements MeituanRequest<List<OpenIncomeDetailDTO>> {
    /**
    * <p data-diff-id="ct-diff-id-f797df63-6218-4f96-8496-29173a382000">业务类型 1为团购</p>
    */
    @NotNull(message = "productCode不能为空")
    @SerializedName("productCode")
    private Integer productCode;
    /**
    * <p data-diff-id="ct-diff-id-60548276-6028-4815-8812-3b42819fdb79"><span style="color: ">偏移量</span></p>
    */
    @NotNull(message = "offset不能为空")
    @SerializedName("offset")
    private Integer offset;
    /**
    * <p data-diff-id="ct-diff-id-25c1b59b-540d-4c63-860f-0dc17ae93afc">账期ID</p>
    */
    @NotNull(message = "payPlanIdV2不能为空")
    @SerializedName("payPlanIdV2")
    private Long payPlanIdV2;
    /**
    * <p data-diff-id="ct-diff-id-0d87d5b1-d5b9-446a-bdd5-9909c29dd655">数量，limit &lt;= 50</p>
    */
    @NotNull(message = "limit不能为空")
    @SerializedName("limit")
    private Integer limit;
    /**
    * <p data-diff-id="ct-diff-id-bc9afdb9-b936-4b1b-86de-80a42f83f798">账期ID(过期,使用pay_plan_id_v2进行传递)&nbsp;</p>
    */
    @SerializedName("payPlanId")
    private Integer payPlanId;

    public Integer getProductCode() {
        return productCode;
    }
    public void setProductCode(Integer productCode) {
        this.productCode = productCode;
    }
    public Integer getOffset() {
        return offset;
    }
    public void setOffset(Integer offset) {
        this.offset = offset;
    }
    public Long getPayPlanIdV2() {
        return payPlanIdV2;
    }
    public void setPayPlanIdV2(Long payPlanIdV2) {
        this.payPlanIdV2 = payPlanIdV2;
    }
    public Integer getLimit() {
        return limit;
    }
    public void setLimit(Integer limit) {
        this.limit = limit;
    }
    public Integer getPayPlanId() {
        return payPlanId;
    }
    public void setPayPlanId(Integer payPlanId) {
        this.payPlanId = payPlanId;
    }


    @Override
    public MeituanResponse<List<OpenIncomeDetailDTO>> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<List<OpenIncomeDetailDTO>>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "FinanceIncomeDetailRequest{" + "productCode=" + productCode + "," + "offset=" + offset + "," + "payPlanIdV2=" + payPlanIdV2 + "," + "limit=" + limit + "," + "payPlanId=" + payPlanId + "}";
    }
}
